Cook the pasta: Boil a large pot of salted water. Cook pasta until al dente. Save 1 cup of pasta water, then drain pasta.
Sauté aromatics: Heat olive oil in a large skillet over medium heat. Add chopped onion and garlic. Cook for 3–4 minutes until soft and fragrant.
Add artichokes and spinach: Stir in chopped artichoke hearts. Cook for 2–3 minutes. Add spinach in batches, letting it wilt before adding more.
Make the sauce: Sprinkle flour over the veggies, stirring constantly. Slowly pour in plant-based milk while whisking. Add vegan Parmesan, nutritional yeast, paprika, salt, and pepper. Stir until thick and creamy. Use reserved pasta water to adjust thickness if needed.
Combine pasta and sauce: Add the cooked pasta to the skillet. Toss gently to coat evenly. Taste and adjust seasoning.
Serve: Plate and sprinkle extra vegan Parmesan or red pepper flakes if desired. Serve warm.