Over medium heat, melt 2 tablespoons unsalted butter in a heavy-bottomed soup pot. Once the butter has melted, add the diced yellow onion and sauté for about 5 minutes or until the onion begins to soften and become translucent.
Once the onion has softened, sprinkle 2 tablespoons all-purpose flour over the onions and butter and whisk together to form a thick paste or a roux. Cook for 1 minute, allowing the flour to toast lightly.
Slowly add the 3 cups low-sodium broth, ½ cup at a time, whisking well to incorporate. Increase the heat to medium-high and bring the mixture to a boil, whisking often.
Once lightly boiling, add in 1 cup shredded carrots, 3 cups chopped fresh broccoli florets, ½ teaspoon seasoned salt, and ¼ teaspoon grated nutmeg. Reduce to a simmer, cover, and let cook for about 10 minutes, or until broccoli is cooked through.
Once the broccoli is tender, remove the lid, and whisk in 1½ cups half and half, 1 cup sharp cheddar cheese, and ¼ cup Parmesan cheese. Allow the soup to cook over low heat for an additional 2-5 minutes, until the cheese is fully melted, whisking constantly.
Remove the soup from the heat, taste, and add salt and pepper as needed. Serve warm.