If a Google Map starts off hidden the API doesn’t know how many map tiles to load and you get what you’re currently seeing.
There is a way to get the map to redraw:
This makes the first map on the page redraw, but by changing the 0 you can make any of the maps redraw.
Most tab or accordion scripts have an event that you can use to trigger this redraw – normally there is a tab index as well that can be put in place of the 0. You’d need to speak to the author of the tab/accordion script for more details on this though.