How do we know Kernels are successful in making data linearly Separable?
You cannot guarantee this. Some data is not separable by any kernel because of duplicates.

By trying too hard, you will cause overfitting. Essentially, you force the implicit mapping to be so complex it contains a copy of your training data (which is exactly what happens if you choose a too small bandwidth with RBF).

If you want a good generalization performance, you will have to tolerate some errors, and use e.g. soft-margin and such techniques.

Perfect separation is not something to aim for. Such a guarantee is just a guarantee of being able to overfit! Use cross-validation to reduce the risk of overfitting and find the right balance between being optimal on training data and actual performance.