Preheat the oven to 400°F. Butter a 9x13-inch or 3-quart baking dish. Peel the potatoes and slice them 1/8 inch thick.
Melt 3 tablespoons butter in a large Dutch oven over medium heat. Add the onion and cook 5 to 6 minutes, until soft and translucent.
Add the garlic, 1½ teaspoons of the salt, and the black pepper. Cook 30 seconds, until fragrant.
Pour in the heavy cream and chicken stock. Stir and bring to a bare simmer — do not let it boil.
Add the potato slices and stir gently to coat. Cover, reduce heat to low, and simmer 15 to 18 minutes, stirring gently once or twice, until the potatoes are fork-tender but still holding their shape.
Remove the pot from the heat completely. Stir in 1 cup of the cheddar, all of the provolone, and ½ cup of the Parmesan until melted and smooth. Taste and add the remaining ½ teaspoon salt if needed.
Transfer the mixture to the prepared baking dish and spread it into an even layer. Top with the remaining 1 cup cheddar and ¼ cup Parmesan.
Bake 15 to 20 minutes, until bubbling around the edges and the cheese is fully melted.
Switch the oven to broil and brown the top 2 to 3 minutes, watching closely.
Let rest 10 minutes before serving — the sauce thickens as it cools.