In your question you talk about updating but based on the code I take it that you want to insert the record if it doesn't exist.
If that is the case, when you insert a row and you don't provide all values, you need to specify the columns you're inserting into. As a matter of fact this is a good practice always since the order of the columns may change over time. So you're code could look something like
CREATE OR REPLACE PROCEDURE sp_update_contact(
p_employee_id employees.employee_id%TYPE,
p_phone_number employees.phone_number%TYPE,
p_status OUT NUMBER) IS
v_count_id NUMBER;
BEGIN
SELECT COUNT(employee_id)
INTO v_count_id
FROM EMPLOYEES
WHERE employee_id = p_employee_id;
IF v_count_id =0 THEN
Insert INTO EMPLOYEES (employee_id, phone_number)
VALUES(p_employee_id,p_phone_number);
COMMIT;
p_status:=0;
ELSE
p_status:=-1;
END IF;
EXCEPTION
WHEN OTHERS THEN
p_status:=-2;
end;