Before going to use the procedure in any other subprogram or other block , you must declare the prototype of the procedure in declarative section.
CREATE OR REPLACE PACKAGE BODY demo_pkg
Warning: Package Body created with compilation errors.
that fails because p doesn't know about p2 yet, so you can do like below:
create or replace package body demo_pkg
procedure p2; -- forward declaration
Package body created.