Heat olive oil in a dutch oven or large stock pot over medium-high heat. Add the roast and short ribs and cook until browned on all sides. Add half the onion. Cook for an additional 2 minutes.
In a separate medium pot, add the remaining half onion, garlic, guajillo chiles, Arbol chiles, ancho chiles, tomatoes, cinnamon, oregano, paprika, cumin, bay leaf, peppercorns, and salt. Cover with water, about 4-5 cups, and bring to a boil over medium-high heat. Reduce heat to low and simmer for 15 minutes.
Using a fine mesh sieve, strain the liquid over a bowl. Remove the bay leaf and discard.
Place solids in a blender. Add 2 cups of the strained liquid plus 1 cup of beef broth. Cover tightly and blend until smooth.
Place the pot with beef back on the stove at medium heat. Use a fine mesh sieve to strain the blended sauce into the pot with the beef. If needed add more beef broth so the sauce covers the beef. Partially cover the pot, reduce heat to low, and simmer for 3 hours. Taste and add more salt if needed.