Place chicken breasts in a large pot and cover with water. Bring to a boil, then reduce heat and simmer for 15-20 minutes, or until cooked through. Remove chicken from the pot, reserving the cooking liquid. Once cool enough to handle, shred the chicken.
In the same pot, melt butter over medium heat. Add chopped onion, carrots, and celery. Cook until softened, about 5-7 minutes.
Stir in the flour and cook for 1 minute, stirring constantly, to create a roux.
Gradually whisk in the chicken broth, ensuring no lumps form.
Bring the soup to a simmer, then stir in the shredded chicken, half-and-half, salt, and pepper. Cook for another 5-10 minutes, or until heated through and slightly thickened. Do not boil.
Ladle soup into bowls, garnish with fresh parsley, and serve hot.
Notes
This soup can be stored in the refrigerator for up to 3 days. For a thicker soup, you can increase the amount of flour or simmer for a longer period.