Hi Mark ,
Please use a windows scheduler and schedule accordingly.
Create a .bat script in a location i.e C:\TestFolder \Test.bat
cd "c:\program files\tableau\tableau 9.1\bin>"
tableau refreshextract --server https://online.tableau.com --username --password --site --project " " --datasource " "
An alternative solution is to create a schedule with an arbitrary day/time setting and then disable the schedule.
Once disabled, it will no longer trigger automatically but can still be run via TabCMD (as of v10.1 and earlier, have not tested in 10.2/10.3)
This way you can assign multiple refreshes to a given schedule and then run it every 3 hours with "tabcmd runschedule".
The other method as suggested by Satish is probably the way to go, unless there is an absolute need to manage your extract refresh tasks within the Tableau Server portal.
A further option would be to have 2 different schedules set to run every 6 hrs, one starting at midnight, and the other starting at 03:00
Then publish your data source using the first schedule.
Once published, go to the data source properties, and expand Refresh Details, and you will be able to add the second schedule to the data source
This should (I think) resolve your issue...
All the best