Para executar uma subshell use $(...) no bash. E você não precisa redirecionar a entrada, mas simplesmente nomeie o arquivo de entrada. Então, omita o < :
NUM_LINES=$(wc -l "$P")
Saída:
3 three_little_pigs.csv
Para se livrar do nome do arquivo, uma possibilidade (há muitos outros) é usar o awk:
NUM_LINES=$(wc -l "$P" | awk '{print $1}')
EDIT 1:
OK, usar o redirecionamento ( < ) omitirá o nome do arquivo ... desculpe;)
NUM_LINES=$(wc -l < "$P")