Hi exposure,
3 weeks diving in Sabah, I'm jealous
Let me mention first that I live in Sabah and we run a dive business from Kota Kinabalu. My feedback is based on my experience of diving here.
Sabah is fortunate enough to have two world class diving sites - Sipadan and Layang Layang. Both offer fantastic dives along drop-offs. Sipadan is on the south east coast, Layang Layang is ~150nm offshore north west of Kota Kinabalu (you get a flight their from BKI). Near Sipadan you also have some impressive muck diving at Mabul and Kapalai.
There is only one Resort at Layang Layang, whereas near Sipadan you have a range of Resorts to choose from depending on your budget and quality of stay you want. LL is open from start March - end August each year. Sipadan can be dived all year round.
There is also diving from Lankayan Resort off the east coast of Sabah (accessible from Sandakan). There is only one Resort on the island and it's home to good muck diving, shallow reefs (no drop-offs) and some small fishing boat wrecks. It's great if you want more of an island resort feel with lovely beaches.
There are a range of diving options from Kota Kinabalu (depending on the time of year you dive in Sabah). It may not be world class but there is still a good variety of marine life and some interesting diving sites if you're willing to travel ~ 30 nm (1 hour on our RIB) to some offshore dive sites. The popular choice is nearby Tunku Abdul Rahman Marine Park (home to ~ 20 dive sites, all coral reefs). There's also some good diving at Pulau Tiga (south of KK), Mayne Rock (north of KK), WW2 wrecks (north of KK) and Mantanani (worth staing overnight as it's a 3 hour journey to get there).
So you could dive from each coast of Sabah during the 3 weeks. When do you plan to visit Sabah - it may inform where you choose to go?
Hope this helps. Enjoy diving in Sabah
Thanks,
DG