- In a large pot, bring the chicken or vegetable broth to a boil. Add the elbow macaroni and cook according to package instructions until al dente. Drain and set aside. 
- In the same pot, melt the butter over medium heat. Stir in the flour and cook for about 1 minute, stirring constantly, until the mixture is bubbly and golden. 
- Gradually whisk in the milk, ensuring there are no lumps. Continue to cook, stirring frequently, until the mixture thickens, about 3-5 minutes. 
- Reduce the heat to low and add the cheddar cheese, mozzarella cheese, and Parmesan cheese. Stir until the cheeses are melted and the soup is creamy. 
- Add the cooked macaroni to the cheese mixture. Stir in the garlic powder, onion powder, paprika, salt, and pepper. Adjust seasoning to taste. 
- Let the soup simmer for an additional 5 minutes, allowing the flavors to meld together. If the soup is too thick, add a little more milk or broth to reach your desired consistency. 
- Serve hot, garnished with chopped fresh parsley if desired.