Suas condições são implicitamente AND 'e sua segunda condição sempre será verdadeira (a menos que você tenha outros domínios), portanto, suas regras atuais redirecionarão apenas o tráfego não SSL.
Você precisa ORdas condições e nega a www(segunda) condição:
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Se SERVER_PORTnão for 443 (por exemplo, não é HTTPS) ou o host não iniciar www.(por exemplo, você está acessando o domínio básico), redirecione para o URL canônico.
No entanto, se isso vai redirecionar https://example.coma https://www.example.comdependerá do seu certificado de segurança. (Seu site precisa estar acessível por www e não www sobre SSL para que o redirecionamento .htaccess seja acionado.)
http://example.com(por exemplo, HTTP e não www), pois ele primeiro redireciona para HTTPS no mesmo host (por exemplo, semwww) e, em seguida, redireciona parawwwum segundo redirecionamento. Você pode corrigir isso simplesmente revertendo essas duas regras.