Melt the butter in a large pot set over medium heat.
Add the sliced onion and minced garlic to the melted butter and cook, stirring, until the onion softens, about 2 minutes.
Sprinkle in the flour and stir constantly for about 1 minute to cook off the raw taste and form a light roux.
Slowly whisk in the vegetable broth and cream until smooth, then bring the mixture to a gentle simmer.
Stir in the diced potatoes, reduce the heat if needed, and simmer—stirring occasionally—until the potatoes are tender, about 20 minutes.
Remove the pot from the heat and fold in 1 cup of cheddar, 1/2 cup of provolone, and 1/4 cup of Parmesan until the cheeses melt into the sauce.
Taste and season the mixture with the salt and black pepper.
Set your oven to the low broil setting.
Transfer the potato and cheese mixture into a prepared casserole dish and smooth it into an even layer.
Scatter the remaining cheddar, provolone, and Parmesan evenly over the top.
Place the dish under the broiler and cook for 5 to 8 minutes, watching carefully, until the top is melted, bubbling, and lightly browned.
Remove from the oven and sprinkle with chopped parsley before serving.