Preheat the oven to 350 degrees F (175 degrees C).
Place bacon in a 10-inch skillet and cook over medium heat, turning occasionally, until crisp, about 10 minutes. Use a slotted spoon to remove bacon to a paper towel-lined small bowl. Discard half the bacon fat using a spoon.
Cook sausage in the hot skillet until browned on both sides, about 5 minutes. Remove to the bowl with the bacon.
Heat canola oil and butter in the same skillet over medium heat. Add hash browns and onion. Sprinkle 1/2 teaspoon garlic powder, onion powder, 1/4 teaspoon salt, and 1/4 teaspoon black pepper on top and stir together. Spread out the hash browns; cook, without stirring, until browned, about 5 minutes. Turn hash browns over and sprinkle Cheddar cheese evenly over the top.
Stir remaining garlic powder, eggs, and milk together in a bowl; season with salt and pepper. Pour egg mixture over the Cheddar cheese-covered hash browns in the skillet. Sprinkle bacon and sausage pieces on top.
Bake in the preheated oven until top is puffed, cheese is melted, and a knife inserted into the center comes out clean, 10 to 15 minutes.