Remove the 3 tablespoons butter from the fridge to soften while you prepare other ingredients. Preheat the oven to 350°F and move the oven rack to the top third. Line a baking sheet with foil.
Place the 1 small loaf sourdough bread on a cutting board. Using a serrated knife, make parallel slices about 1 inch apart, cutting down toward the bottom but not all the way through so the loaf stays intact. Rotate the loaf and make parallel cuts the other way to create a criss-cross pattern, again without cutting through the base.
Put the 1/2 cup grated parmesan cheese and 1 cup grated mozzarella in bowls or on a plate so they are ready to use.
In a small bowl, combine the softened 3 tablespoons butter, 4 cloves minced garlic, 1 tablespoon chopped fresh parsley, and salt and pepper to taste. Mash and mix with a fork until thoroughly combined.
Use a small knife, spoon, or fork to work the garlic butter into the cracks of the bread, pushing some butter into each cut so the mixture gets inside the loaf.
Stuff the cuts with the cheeses by sprinkling and pushing the 1/2 cup grated parmesan and 1 cup grated mozzarella evenly into the openings between the slices.
Place the stuffed loaf on the prepared baking sheet. Loosely tent the loaf with a piece of foil so steam can circulate but the top is covered.
Bake at 350°F for 15 minutes. Remove the foil tent and bake an additional 15 minutes, until the cheese is melted and the bread is golden.
If you want extra browning, broil for 1–2 minutes—watch closely to prevent burning.
Remove from the oven, let the loaf rest briefly so it’s not too hot to handle, then serve warm.