Preheat the oven to 400°F (200°C).
Boil the peeled and cubed potatoes in a large pot of salted water until fork-tender, approximately 15 minutes.
Drain the potatoes and return them to the warm pot. Add 3 tablespoons of butter and the warm milk. Mash until completely smooth and creamy. Set aside.
In a large, oven-safe skillet over medium-high heat, cook the ground beef until browned and no longer pink. Drain any excess grease.
Add the chopped onion, diced carrots, and diced bell pepper to the skillet with the beef. Cook for 5-7 minutes until the vegetables begin to soften.
Stir in the tomato paste and all-purpose flour. Cook for 1 minute to remove the raw flour taste.
Pour in the beef broth and Worcestershire sauce, stirring constantly to scrape up any browned bits from the bottom of the pan. Simmer for 3-5 minutes until the gravy thickens.
Stir in the frozen peas and remove the skillet from the heat.
Spread the meat and vegetable filling into an even layer in the skillet (or transfer to a 9x9-inch baking dish). Spoon the mashed potatoes over the top, spreading them to the edges to seal in the filling.
Melt the remaining 1 tablespoon of butter and brush it over the mashed potatoes. Run a fork lightly across the surface to create ridges.
Bake for 20-25 minutes until the gravy is bubbling around the edges and the potato topping is golden brown.
Remove from the oven, garnish with fresh chopped parsley, and let cool for 10 minutes before serving.