If you have a list of 3000 businesses that isn't expected to grow or change substantially, then the approach should be to create the categories so that there isn't too much of a difference in the numbers contained in each group. So if most of the businesses are from A-M and there's not much from L-Z, then having many groups that don't contain any entries is not particularly useful.
Navigation strategies comes from expected search behaviours and strategies of the users, and whether they are going to search for a specific name (or something similar) or browse/scroll through a long list, having many accordions isn't going to be an optimal strategy for a large number of items most of the time. This is why for large datasets, an efficient or smart search gets you to the result quicker.
The best thing you can really do is perhaps show how many items are in each category, and let the users decide if it is too many for them to go through, and offer an alternate search strategy to help narrow down the number of results that they have to go through. Having an arbitrary number of 50 or 100 or x isn't really going to help as much as giving them multiple strategies to get to the result they want in the quickest way possible.