Preheat oven to 400 degrees F. Line baking sheet with parchment paper. Place butternut squash and onions on baking sheet. Toss in olive oil. Season with salt and pepper. Bake for 15 minutes, remove from oven and stir contents around to ensure even cooking. Bake for another 15 minutes until squash can be easily pierced with a fork. Allow to cool.
Meanwhile, cook pasta in a large pot of salted boiling water. Cook one minute under al dente according to package instructions. Save about 1/2 cup of pasta cooking water before straining cooked pasta.
Place cooked butternut squash and onion in a blender (food processor or immersion blenders also works) with melted butter and 1/3 cup of reserved pasta water. Puree until smooth. Add additional water 1 tablespoon at a time if necessary.
Place drained pasta in a large bowl. Add butternut-onion puree and all three cheeses. Fold to combine. If mixture is a bit dry, add 1 tablespoon of reserved pasta water at a time. Divide pasta between serving bowls. Sprinkle additional cheese on top. Bake for 15-20 minutes in 400 degree F oven until cheese has melted and begins to brown. Let sit for 5 minutes to slightly cool before serving.