In a medium bowl, combine the chopped spinach, artichoke hearts, cream cheese, mozzarella cheese, Parmesan cheese, garlic powder, salt, and black 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 half of the spinach artichoke mixture evenly on the bread in the skillet.
Top with the second slice of bread, buttered side up. Cook for about 3-4 minutes, or until golden brown.
Carefully flip the sandwich and cook for another 3-4 minutes until the other side is golden brown and the cheese is melted.
Remove from the skillet, let cool for a minute, then slice in half and serve warm.