Pour olive oil into a nonstick skillet and heat over medium-high.
Once the oil is warm, add onion and peppers and sauté about 2 minutes. Add the ham and cook for 2-3 more minutes.
Transfer to a bowl and set aside. Reduce heat to medium-low and add more oil if needed.
In a small bowl, whisk together the eggs, milk, and a pinch of salt and pepper until frothy, then pour into the skillet. Tilt the pan if needed to make the eggs reach the sides.
Cook about 2 minutes, until edges are set but top is not yet set. If cooking too quickly, reduce heat.
Add the ham, onion, and pepper onto one half and place a lid on the pan. Cook for 1-2 minutes, until the top of the eggs are set.
Remove from heat and slide a thin spatula around the edges to loosen, then slide under the egg-only half and carefully fold over. Slide onto a plate and serve with hot sauce if desired.