I think this right punch problem may be widespread. If you are trying to do a right punch very-very fast, to evade a possible counter (even on a long distance), there is a huge temptation not to throw it at a full length.
It is indeed a widespread problem—particularly in Muay Thai (MT) or Kick Boxing (KB). In boxing, you can make up for the distance by getting low, widening your stance, or bending forward. Doing so is usually not a good idea in MT/KB seeing how such an attempt can be met with a devastating knee to the face/head. I faced the same problem—I couldn't land my cross/straight right from a safe distance.
But that may not be the only problem. If you don't get sufficient rotation to land your cross/straight right, then chances are you may not be able to land the following left hook.
Are there other, better ways to improve my punch without a bag?
I think Sean Duggan and Amorphous Blob have given you great pointers—those are things that worked for me when I was working to solve the problem. I simply stood in front of my closet and threw 50 straight rights at the already hanging shirts and jackets.
There is one other thing that helped me immensely—thanks to Youtube. Most beginners (not saying that you are one) think that they have to roll their right shoulder forward when throwing the cross/straight right. While that is true, it is just half the story.
When you throw the cross/straight right, three things need to happen.
- You turn or roll your right shoulder forward.
- You need to make sure that you are turning your right hip towards the punchline (this is the the most important part).
- You need to turn or roll your right side lat muscle towards the punch line.
I started focusing on fueling the cross/straight right by turning my hip and the right lat muscle. I stopped being conscious of rolling or turning my right shoulder. It happened automatically when I practiced focusing on turning my hip and my lat towards the punchline (don't over commit though).
I worked on my "hip turning" for the cross (as well as for the left hook) using a resistance band (as Amorphous Blob mentions). See image below (ignore the poor drawing). But instead of attaching it to my arm, I tied it to my waist. I made sure I stood correctly in my orthodox stance, and that the knot was on my right hip (and not on the center of my lower back). I did a number of sets and reps throwing the cross focusing on the turning of my right hip and lat muscle.

The idea is essentially the same as training your punches with a band or a dumbbell. It teaches your hips to always turn or rotate with the cross/straight right - even when fatigued. This way you still hit the mark when you are tired and won't fall short.
Other technical things that may help closing the distance for the cross/straight right are getting low and taking a small step with the jab and bringing the back leg a little forward when throwing the cross/straight right.