No, 3 weeks is not too long for Vietnam. In fact, you won't be able to see everything Vietnam has to offer in 3 weeks. You need at least a month to visit all of the most popular destinations, but you could easily spend longer than this too.