Good point. 

I think in this case ``metric_kwds['p']`` should be prioritized over ``p``. Because if a user added ``p`` to ``metric_kwds`` he definetely knew what he was doing. And ``p`` from ``__init__`` becomes irrelevant. 

Another option would be to remove ``p`` from ``__init__`` all together. It makes sense, because after all ``p`` is also a metric parameter and belongs to metric_kwds. But I'm not sure if it's a good idea.

So what are your thoughts?