Preheat the oven to 190C/375F/Gas 5.
Cut the potatoes into 5cm/2in chunks and boil until soft. Drain and mash with the butter, crème fraîche and warm milk. Season with salt and white pepper. Set aside and keep warm.
Heat the milk in a large pan, add the smoked haddock and cod. Cut the onion in half, make an incision in one of the halves and insert the bay leaf. Push the cloves into the same onion half and place this into the pan with the milk and fish. Bring the milk up to the boil. Reduce the heat and simmer gently for 6-7 minutes.
Meanwhile, finely chop the remaining half onion and the leeks. Heat the butter with the olive oil in a small frying pan and gently fry the onion and the leeks for 4-5 minutes to soften, but not brown.
Remove the fish from the pan, and set aside to cool slightly. Keep the milk in the pan.
Add the flour to the leeks and stir well to combine. Fry for one minute, stirring frequently. Gradually spoon in the milk from poaching the fish, and stir it in well each time. Add all the milk in this way, and heat gently until the sauce has thickened.
Taste the sauce for seasoning, and add more salt or pepper if necessary.
Break the fish into chunks, being careful to feel for any bones and remove any skin, then fold the fish pieces into the sauce.
Add the raw prawns and frozen peas to the mixture.
Place an ovenproof pie dish onto a baking tray (this will catch any of the mix that bubbles over when cooking).
Spoon the fish mixture into the bottom of the ovenproof dish. Sprinkle fresh chopped parsley and grated lemon zest over the top.
Carefully top with the cooled mashed potato. Use a fork to spread the mash over the pie and create a rough texture on top. Dot the pie with the remaining half of the butter and place in the oven for 25-30 minutes, or until golden-brown and bubbling.