Take an Uber.
Assuming you're not checking bags, three hours is plenty of time, even in rush-hour, to get from National to Dulles. It's a 30 minute drive with no traffic and shouldn't be much more than an hour even in the worst rush hour. Just make sure the driver switches on Waze or Google Maps so they can take the best route and DO NOT use the Uber app map (it's really terrible). There are several ways to get from DCA to IAD that all take roughly the same amount of time, one of them should be in the clear.