one way to estimate the number of cluster is to estimate a kind of cluster validity index. this index takes fundation on what is a good cluster (maximum variance beetween clusters and minimum intra clusters variance).
There is no best cluster number in the unsupervised learning. Indeed, your problem definition can describe the number of clusters. Since your data set has 3 dimensions, you can use visualization techniques for understanding the statistical properties of your data set. For instance, you can use hierarchical methods (similarity/distance matrices) for depicting the Dendrogram of your data set. As another alternative, you can see the following paper:
P. Y. Mok, H. Q. Huang, Y. L. Kwok, J. S. Au: A robust adaptive clustering analysis method for automatic identification of clusters. Pattern Recognition, vol. 45, 2012.