Under normal conditions SSH toolchain asks the password from terminal, not from stdin. You can provide custom SSH_ASKPASS program to push your password with it.
Create a simple script askpass.sh:
#!/bin/sh
echo $PASSWORD
then configure it to be used in ssh:
chmod a+x askpass.sh
export SSH_ASKPASS=askpass.sh
finally run ssh-copy-id (without expect):
export DISPLAY=:0
PASSWORD=mySecurePassword setsid ssh-copy-id -o StrictHostKeyChecking=no hishost.thatwas.secure.com
setsid detaches from terminal (ssh will then panic and look for askpass program) DISPLAY is also checked by ssh (it thinks your askpass is a GUI)
Note that there might be hidden security vulnerabilities with this approach.