In a medium bowl, combine the chopped spinach, artichoke hearts, cream cheese, mozzarella cheese, Parmesan cheese, garlic powder, salt, and pepper. Mix until well combined.
Spread 1 tablespoon of softened butter on one side of each slice of sourdough bread.
Place one slice of bread, buttered side down, in a skillet over medium heat.
Spread the spinach and artichoke mixture evenly on top of the bread in the skillet.
Top with the second slice of bread, buttered side up.
Cook for about 3-4 minutes until the bottom slice is golden brown. Carefully flip the sandwich and cook for another 3-4 minutes until the other side is golden and the cheese is melted.
Remove from the skillet, let it cool for a minute, then slice in half and serve warm.