I'm not a big fan of Visegrad. Dunabogdany is the town below the castle in Visegrad. But its not on the Danube, its on a channel off the Danube. I guess i have driven through it on the way to Visegrad, but didnt really notice.
There is a good tour here and it doesn't require a guide. Given your limited time in Budapest I would opt for the half day tour which requires you to hop on H5 commuter train on the Buda side at Batthyány tér for about a 35 minute trip to Szentendre https://welovebudapest.com/en/toplists/we-love-budapests-visitor-guide-to-szentendre/. The train I believe is 300 to 500 forint if you have a metro TravelCard (which you should)
I would leave right after lunch. Then at 5 pm you hop on the river taxi for a 45 minute ride back into Budapest. Its a beautiful trip so get on the boats top deck to enjoy it. https://www.mahartpassnave.hu/en/timetable/danube-bend-excursion-boat-lines/budapest-szentendre/
A second option is an all day affair. Take the train to Esztergom (its the next town up from Visegrad). https://www.thecrazytourist.com/15-best-things-to-do-in-esztergom-hungary/
Then have a driver pick you up in Esztergom and drive you to Szentendre. There is a bus, but it takes two hours. The drive is about 45 minutes. There are two routes, one along the river and the other through the foothills. Both nice. The one along the river does go through Visegrad if you wanted to stop, but I think hitting all three Danube Bend towns is too much for one day. From Szentendre take that boat back to Budapest.
One driver you might want to talk to is: http://silverwings.hu/ I suspect it will cost about the same as your tour. Laszlo is a an interesting and talkative guy so you get to know a bit more. He also will stop and show you what ever you want along the way.