So is your laptop running a local instance of IPTABLES or UFW - wouldn't be unheard of - you don't say what O/S your laptop is running, open a command window on the laptop running Octoprint and type sudo netstat -tulnp -
You SHOULD see two instances in the local address column showing :::80 and :::443. AND a tcp on 127.0.0.1:5000 which has a python2 program name. HAPROXY listens on IPV4 and IPV6 on port 80 and port 443 and forwards to the localhost listener ONLY on 127.0.0.1. If you take a look in /etc/haproxy.cfg its all listed out.
I'm not expert enough in the configuration of Octoprint to know whether you should open port 5000 to anything other than localhost, but your listeners on port 80 and 443 should be active and port 5000 on localhost.
Then check your security / local firewall configuration - try stopping the services which you can list with sudo service --status-all, on Raspbian and Debian/Ubuntu systems that works. YMMV if you are running a different linux desktop O/S. Static/ dynamic shouldn't matter - if you know the IP address of your laptop the connection should work, but something else is stopping it, hence my suggestion of a local instance of IPTABLES / ufw or something - you will see ufw in the services list..