Yes, you were right. I was calling some other dataset and there was also a typo in my implementation.
Lambda(gaussian_blur)  works on PIL image but we have to add a conversion of numpy array to PIL image using im = Image.fromarray(new_image) in the gaussian_blur function.