Not sure why trying to find prime factors like this doesn't work
It doesn't work because you didn't write a (broken) prime factor finding program, you wrote a (broken) prime finding program. If we fix it and clean it up, this should be a bit more obvious:
primes = [2, 3, 5]
maximum = int(input("Highest number checked: "))
x = 2
while x <= maximum:
is_prime = True
for prime in primes:
if prime * prime > x:
break
if x % prime == 0:
is_prime = False
break
if is_prime:
primes.append(x)
x = x + 1
print(primes)
USAGE
% python3 test.py
Highest number checked: 100
[2, 3, 5, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
%
This can be used as part of a prime factor finding program, but isn't sufficient on its own. You need to work through some subset of the list of primes up to N seeing which primes are factors of N. Not substantially more code than you have now.